package Date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateTest {
    
    public static void main(String[] args) throws ParseException {
        // 初始化 Date 对象
       Date date = new Date();
        
       System.out.println(date.getTime());
       // 使用 toString() 函数显示日期时间
       System.out.println(date.toString());


        /**
         * 格式化日期
         * HH 是 24 小时制，而 hh 是 12 小时制
         */
        SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
        System.out.println("当前时间为12小时制: " + ft.format(date));

        SimpleDateFormat ft1 = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
        System.out.println("当前时间为24小时制: " + ft1.format(date));

        //转换成指定的格式  
        SimpleDateFormat ft2 = new SimpleDateFormat ();
        String current = ft2.format(System.currentTimeMillis());
        System.out.println("当前时间为: " +current);

        Calendar cal = ft2.getCalendar();
        System.out.println("当前年份为: " + cal.get(Calendar.YEAR));//获取年份
        System.out.println("当前月份为: " + cal.get(Calendar.MONTH));//获取月份
        System.out.println("当前日Day为: " + cal.get(Calendar.DATE));//获取日
        System.out.println("当前小时为: " + cal.get(Calendar.HOUR));//小时 12小时制
        System.out.println("当前小时为: " + cal.get(Calendar.HOUR_OF_DAY));//小时 24小时制
        System.out.println("当前分为: " + cal.get(Calendar.MINUTE));//分
        System.out.println("当前秒为: " + cal.get(Calendar.SECOND));//秒
        //一周的第几天获得星期几（注意（这个与Date类是不同的）：1代表星期日、2代表星期1、3代表星期二，以此类推）
        System.out.println("一周的第几天: " + cal.get(Calendar.DAY_OF_WEEK));


        SimpleDateFormat ft3 = new SimpleDateFormat ("yyyy-MM-dd");
        String dateStr = "2021-08-23";
        Date date1 = ft3.parse(dateStr);
        System.out.println(date1);


        Calendar c = Calendar.getInstance();//默认是当前日期
        System.out.println(c);
        c.set(2009, 6 - 1, 12);//代表2009年6月12日的

        c.set(Calendar.DATE, 10);
        c.set(Calendar.MONTH, 12);

        c.add(Calendar.DATE, 10);
        c.add(Calendar.DATE, -5);
    }
}
